﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUSSINESS;


namespace QuanLyGiaPha
{
    public partial class frmQueQuan : Form
    {
        private BUS_QueQuan busQueQuan = new BUS_QueQuan();
        private bool add = false;
        private bool update = true;
        public frmQueQuan()
        {
            InitializeComponent();
        }

        private void frmQueQuan_Load(object sender, EventArgs e)
        {
            loadData();
        }
        private void loadData()
        {
            try
            {
                dTO_QueQuanBindingSource.DataSource = busQueQuan.getAllQueQuan();
                btnLuu.Enabled = DTO_NguoiDung.isAdministrator;
                btnThem.Enabled = DTO_NguoiDung.isAdministrator;
                btnXoa.Enabled = DTO_NguoiDung.isAdministrator;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnHienThi_Click(object sender, EventArgs e)
        {
            loadData();
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
                       
                this.Close(); 
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            tenQueQuanTextBox.Focus();
            tenQueQuanTextBox.Text = "";
            maQueQuanTextBox.Text = "";
            add = true;
            update = false;
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                string strMaQQ = maQueQuanTextBox.Text;

                if (!strMaQQ.Equals(""))
                {
                    int maQQ = Int16.Parse(strMaQQ);
                    DTO_QueQuan queQuan = new DTO_QueQuan(maQQ, null);
                    if (MessageBox.Show("Bạn có muốn xoá '" + tenQueQuanTextBox.Text + " ' và những nhân viên liên quan Không ???", "Xác Nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        busQueQuan.deleteQueQuan(queQuan);
                        loadData();
                    }
                    
                }
                else
                {
                    MessageBox.Show("Chưa chọn quê quán để xóa!!!", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnTim_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = busQueQuan.getQueQuanByName(txtTenQueQuan.Text);
                if (dt.Rows.Count > 0)
                {
                    dTO_QueQuanBindingSource.DataSource = dt;
                }
                else
                {
                    MessageBox.Show("Không tìm thấy quê quán", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            try
            {

                string tenQQ = tenQueQuanTextBox.Text;
                if (add)
                {
                    addQueQuan(tenQQ);
                }
                else if (update)
                {
                    int maQQ = 0;
                    try
                    {
                        maQQ = Int16.Parse(maQueQuanTextBox.Text);
                    }
                    catch (FormatException fex)
                    {
                        if (MessageBox.Show("Chưa chọn loại quê quán để cập nhật hay bạn muốn thêm mới", "Xác Nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                           addQueQuan(tenQueQuanTextBox.Text);
                            loadData();
                            update = true;
                            add = false;
                        }
                        return;
                    }
                    DTO_QueQuan queQuan = new DTO_QueQuan(maQQ, tenQQ);
                    bool result = busQueQuan.updateQueQuan(queQuan);
                    if (result)
                    {
                        MessageBox.Show("Cập nhật quê quán thành công", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        maQueQuanTextBox.Enabled = false;
                    }
                    else
                    {
                        MessageBox.Show("Cập nhật quê quán thất bại", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                loadData();
                update = true;
                add = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }            
        }
        private void addQueQuan(string tenQQ)
        {
             DTO_QueQuan queQuan = new DTO_QueQuan(0, tenQQ);
                bool result = busQueQuan.insertQueQuan(queQuan);
                if (result)
                {
                    MessageBox.Show("Thêm quê quán thành công", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    maQueQuanTextBox.Enabled = false;
                }
                else
                {
                    MessageBox.Show("Thêm quê quán thất bại", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
        }
    }
}
